Notifications on a User Device Based on Activity Detected By an Activity Monitoring Device

ABSTRACT

Methods, systems and devices are provided for motion-activated display of messages on an activity monitoring device. In one embodiment, method for presenting a message on an activity monitoring device is provided, including the following method operations: downloading a plurality of messages to the device; detecting a stationary state of the device; detecting a movement of the device from the stationary state; in response to detecting the movement from the stationary state, selecting one of a plurality of messages, and displaying the selected message on the device.

CLAIM OF PRIORITY

This application is a continuation-in-part of U.S. patent applicationSer. No. 14/192,282, filed on Feb. 27, 2014, titled “Methods, Systemsand Devices for Physical Contact Activated Display and Navigation”,which is hereby incorporated by reference in its entirety.

FIELD

The present disclosure relates to systems and methods for presentingnotifications on a user device based on user activity detected by anactivity monitoring device.

BACKGROUND

In recent years, the need for health and fitness has grown tremendously.The growth has occurred due to a better understanding of the benefits ofgood fitness to overall health and wellness. Unfortunately, althoughtoday's modern culture has brought about many new technologies, such asthe Internet, connected devices and computers, people have become lessactive. Additionally, many office jobs require people to sit in front ofcomputer screens for long periods of time, which further reduces aperson's activity levels. Furthermore, much of today's entertainmentoptions involve viewing multimedia content, computer social networking,and other types of computer involved interfacing. Although such computeractivity can be very productive as well as entertaining, such activitytends to reduce a person's overall physical activity.

To provide users concerned with health and fitness a way of measuring oraccounting for their activity or lack thereof, fitness activity trackershave recently grown in popularity. Fitness activity trackers are used tomeasure activity, such as walking, motion, running, sleeping, beinginactive, bicycling, exercising on an elliptical trainer, and the like.Typically, the data collected by such devices can be transferred andviewed on a computing device.

It is in this context that embodiments of the invention arise.

SUMMARY

Embodiments described in the present disclosure provide systems,apparatus, computer readable media, and methods for presentingnotifications on a user device based on user activity detected by anactivity monitoring device.

In one embodiment, a method for generating a notification on a mobiledevice is provided including: establishing a wireless connection to anactivity monitoring device; receiving activity data from the activitymonitoring device via the wireless connection; processing the activitydata to determine an activity metric for a user of the activitymonitoring device; comparing the activity metric against a predefinedthreshold, the predefined threshold being mapped to a notificationmessage; in response to determining that the activity metric reaches orexceeds the predefined threshold, scheduling the notification messagefor display on the mobile device at a specified date and time; whereinthe method is executed by at least one processor.

In one embodiment, the notification message defines one or more of analert, a banner, a badge on an icon associated to the application, or asound.

In one embodiment, establishing the wireless connection definescommunication between a background executed application on the mobiledevice and the activity monitoring device.

In one embodiment, displaying the notification message includestriggering a local notification presenter.

In one embodiment, the notification message is displayed on the mobiledevice at the specified date and time.

In one embodiment, the activity metric defines one or more of a numberof steps taken, a number of floors climbed, a number of calories burned,a distance traveled, or a number of active minutes.

In one embodiment, the predefined threshold defines a quantifiedachievement amount of an activity goal set for the user; wherein thenotification message identifies the quantified achievement amount of theactivity goal.

In one embodiment, the quantified achievement amount of the activitygoal is less than 100%, 100%, or greater than 100% of the activity goal.

In one embodiment, the method further includes: when the specified dateand time is reached, processing activity data from the activitymonitoring device to identify a current state of activity of the user;and presenting or delaying presentation of the notification message,based on the identified current state of activity of the user.

In one embodiment, processing activity data to identify the currentstate of activity of the user includes processing location data toidentify a speed or a location of the user; and presenting or delayingpresentation of the notification message is based on the identifiedspeed or location of the user.

In another embodiment, a server-executed method for presenting anotification on a mobile device is provided, including: establishingcommunication with the mobile device; receiving activity data from themobile device, the activity data being processed by the mobile devicefrom logged data received from an activity monitoring device; processingthe activity data to determine an activity metric for a user of theactivity monitoring device; comparing the activity metric against apredefined threshold, the predefined threshold being mapped to anotification message; in response to determining that the activitymetric reaches or exceeds the predefined threshold, sending thenotification message to a notification service, the notification serviceconfigured to transmit the notification message to the mobile device forrendering on the mobile device, wherein rendering the notificationmessage includes scheduling the notification message for a time window;wherein the method is executed by at least one processor.

In one embodiment, the notification message defines one or more of analert, a banner, a badge on an icon associated to the application, or asound.

In one embodiment, establishing communication with the mobile deviceincludes establishing communication with a background executedapplication on the mobile device.

In one embodiment, rendering the notification message on the mobiledevice includes triggering a notification handler.

In one embodiment, rendering the notification message occurs at thespecified date and time.

In one embodiment, the activity metric defines one or more of a numberof steps taken, a number of floors climbed, a number of calories burned,a distance traveled, or a number of active minutes.

In one embodiment, the predefined threshold defines a quantifiedachievement amount of an activity goal set for the user; wherein thenotification message identifies the quantified achievement amount of theactivity goal.

In one embodiment, the quantified achievement amount of the activitygoal is less than 100%, 100%, or greater than 100% of the activity goal.

In one embodiment, the method further includes: when the time window isreached, processing activity data from the activity monitoring device toidentify a current state of activity of the user; and presenting ordelaying presentation of the notification message, based on theidentified current state of activity of the user.

In one embodiment, processing activity data to identify the currentstate of activity of the user includes processing location data toidentify a speed or a location of the user; and presenting or delayingpresentation of the notification message is based on the identifiedspeed or location of the user.

In another embodiment, a method for presenting a notification on a userdevice is provided including: defining an activity goal; determining aseries of notification thresholds, each notification threshold defininga quantified level of achievement of an activity goal, each notificationthreshold being mapped to a corresponding notification message;receiving activity data measured by an activity monitoring device;processing the activity data to determine an activity metric; when theactivity metric reaches one of the notification thresholds in the seriesof notification thresholds, triggering presentation of the correspondingnotification message on a user device, wherein triggering presentationof the corresponding notification message includes scheduling thecorresponding notification message for a specified date and time;wherein the method is executed by at least one processor.

In one embodiment, triggering presentation of the correspondingnotification message on the user device includes activating a pushnotification service to transmit the notification message to the userdevice for rendering on the user device.

In one embodiment, triggering presentation of the correspondingnotification message on the user device includes triggering a localnotification presenter to display the corresponding notification messageon the user device.

In one embodiment, each notification message identifies the quantifiedlevel of achievement defined by the notification threshold to which thenotification message is mapped.

In one embodiment, the notification message defines one or more of analert, a banner, a badge on an icon associated to the application, or asound.

In one embodiment, the method further includes: rendering thenotification message on the user device at the specified date and time.

In one embodiment, the activity metric defines one or more of a numberof steps taken, a number of floors climbed, a number of calories burned,a distance traveled, or a number of active minutes.

In one embodiment, the method further includes: when the specified dateand time is reached, processing activity data from the activitymonitoring device to identify a current state of activity of the user;and presenting or delaying presentation of the notification message,based on the identified current state of activity of the user.

In another embodiment, a method for triggering a notification to a userof an activity monitoring device is provided, including: receivingactivity data from one or more sensors of an activity monitoring device;processing the activity data to determine an activity metric for a userof the activity monitoring device; comparing the activity metric againsta predefined threshold, the predefined threshold being mapped to anotification message; in response to determining that the activitymetric reaches or exceeds the predefined threshold, establishingcommunication with a user device, and triggering display of thenotification message on the user device, wherein triggering display ofthe notification message includes scheduling the notification messagefor display during a time window; wherein the method is executed by atleast one processor.

In one embodiment, the notification message is generated in response tothe determining that the activity metric reaches or exceeds thepredefined threshold; and triggering display of the notification messageon the user device includes sending the notification message to the userdevice.

In one embodiment, the method further includes: when the time window isreached, processing activity data from the one or more sensors of theactivity monitoring device to identify a current state of activity ofthe user; and presenting or delaying presentation of the notificationmessage, based on the identified current state of activity of the user.

In another embodiment, a server-executed method for presenting anotification on a mobile device is provided, including: establishingcommunication with the mobile device; receiving activity data from anactivity monitoring device; processing the activity data to determine anactivity metric for a user of the activity monitoring device; comparingthe activity metric against a predefined threshold, the predefinedthreshold being mapped to a notification message; in response todetermining that the activity metric reaches or exceeds the predefinedthreshold, sending the notification message to a notification service,the notification service configured to transmit the notification messageto a mobile device for rendering on the mobile device; wherein themethod is executed by at least one processor.

Other aspects will become apparent from the following detaileddescription, taken in conjunction with the accompanying drawings,illustrating by way of example the principles of embodiments describedin the present disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments described in the present disclosure may best beunderstood by reference to the following description taken inconjunction with the accompanying drawings.

FIG. 1A shows a block diagram of an activity tracking device, inaccordance with one embodiment of the present invention.

FIG. 1B illustrates an example of an activity tracking device includingexample components utilized for tracking activity and motion of thedevice, and associated interfaces to a display screen, in accordancewith one embodiment of the present invention.

FIG. 2 illustrates an example of activity tracking device incommunication with a remote device, in accordance with one embodiment ofthe present invention.

FIG. 3 illustrates a system for presenting a locally generatednotification, in accordance with an embodiment of the invention.

FIG. 4 illustrates a system for triggering notifications on a userdevice based on activity detected by an activity monitoring device, inaccordance with an embodiment of the invention.

FIG. 5 illustrates components of a system for presenting a notificationon a mobile device, in accordance with an embodiment of the invention.

FIG. 6 illustrates a system for rendering a notification to a user basedon tracked activity of the user, in accordance with an embodiment of theinvention.

FIG. 7 illustrates a variety factors which may be considered forpurposes of triggering a notification, in accordance with embodiments ofthe invention.

FIG. 8 illustrates a system for enabling a first user to define anotification for presentation to a second user, in accordance with anembodiment of the invention.

FIG. 9 illustrates a graphical user interface for accessing activityrelated information of a user based on an activity monitoring device, inaccordance with an embodiment of the invention.

FIGS. 10A-10C illustrate embodiments of communication operations betweenan activity tracking device, a client device, and a backend server, inaccordance with one embodiment of the present invention.

FIG. 11 illustrates an example where various types of activities ofusers can be captured or collected by activity tracking devices, inaccordance with various embodiments of the present invention.

DETAILED DESCRIPTION

Embodiments described in the present disclosure provide systems,apparatus, computer readable media, and methods for presentingnotifications on a user device based on user activity detected by anactivity monitoring device.

It should be noted that there are many inventions described andillustrated herein. The present inventions are neither limited to anysingle aspect nor embodiment thereof, nor to any combinations and/orpermutations of such aspects and/or embodiments. Moreover, each of theaspects of the present inventions, and/or embodiments thereof, may beemployed alone or in combination with one or more of the other aspectsof the present inventions and/or embodiments thereof. For the sake ofbrevity, many of those permutations and combinations will not bediscussed separately herein.

Further, in the course of describing and illustrating the presentinventions, various circuitry, architectures, structures, components,functions and/or elements, as well as combinations and/or permutationsthereof, are set forth. It should be understood that circuitry,architectures, structures, components, functions and/or elements otherthan those specifically described and illustrated, are contemplated andare within the scope of the present inventions, as well as combinationsand/or permutations thereof.

FIG. 1 shows a block diagram of an activity tracking device 100, inaccordance with one embodiment of the present invention. The activitytracking device 100 is contained in a housing, which may be worn or heldby a user. The housing may be in the form of a wristband, a clip ondevice, a wearable device, or may be held by the user either in theuser's hand or in a pocket or attached to the user's body. The activitytracking device 100 includes device components 102, which may be in theform of logic, storage, and glue logic, one or more processors,microelectronics, and interfacing circuitry. In one example, thecomponents 102 will include a processor 106, memory 108, a wirelesstransceiver 110, a user interface 114, biometric sensors 116, andenvironmental sensors 118.

The environmental sensors 118 may be in the form of motion detectingsensors. In some embodiments, a motion sensor can be one or more of anaccelerometer, or a gyroscope, or a rotary encoder, or a caloriemeasurement sensor, or a heat measurement sensor, or a moisturemeasurement sensor, or a displacement sensor, or an ultrasonic sensor,or a pedometer, or an altimeter, or a linear motion sensor, or anangular motion sensor, or a multi-axis motion sensor, or a combinationthereof. The biometric sensors 116 can be defined to measurephysiological characteristics of the user that is using the activitytracking device 100. The user interface 114 provides a way forcommunicating with the activity tracking device 100, in response to userinteraction 104. The user interaction 104 can be in the form of physicalcontact (e.g., without limitation, tapping, sliding, rubbing, multipletaps, gestures, etc.).

In some embodiments, the user interface 114 is configured to receiveuser interaction 104 by way of proximity sensors, button presses, touchsensitive screen inputs, graphical user interface inputs, voice inputs,sound inputs, etc. The activity tracking device 100 can communicate witha client and/or server 112 using the wireless transceiver 110. Thewireless transceiver 110 will allow the activity tracking device 100 tocommunicate using a wireless connection, which is enabled by wirelesscommunication logic. The wireless communication logic can be in the formof a circuit having radio communication capabilities. The radiocommunication capabilities can be in the form of a Wi-Fi connection, aBluetooth connection, a low-energy Bluetooth connection, or any otherform of wireless tethering or near field communication. In still otherembodiments, the activity tracking device 100 can communicate with othercomputing devices using a wired connection (not shown). As mentioned,the environmental sensors 118 can detect motion of the activity trackingdevice 100.

The motion can be activity of the user, such as walking, running, stairclimbing, etc. The motion can also be in the form of physical contactreceived on any surface of the activity tracking device 110, so long asthe environmental sensors 118 can detect such motion from the physicalcontact. Such physical contact may be in the form of a tap or multipletaps by a finger upon the housing of the activity tracking device 100.

FIG. 1B illustrates an example of activity tracking device 100 of FIG.1A, showing some additional example components utilized for trackingactivity and motion of the device, and associated interfaces to displayscreen 122. In one embodiment, examples of a display screen 122 caninclude, but are not limited to, liquid crystal display (LCD) screens,light emitting diode (LED) screens, organic light emitting diode (OLED)screens, plasma display screens, etc.

As shown in FIG. 1B, the activity tracking device 100 includes logic158. Logic 158 may include activity tracking logic 140, motion-activatedmessaging logic 142, display interface logic 144, alarm management logic146, wireless communication logic 148, processor 106, and sensors 156.Additionally, storage (e.g. memory) 108, and a battery 154 can beintegrated within the activity tracking device 100. The activitytracking logic 140 can include logic that is configured to processmotion data produced by sensors 156, so as to quantify the motion andproduce identifiable metrics associated with the motion.

Some motions will produce and quantify various types of metrics, such asstep count, stairs climbed, distance traveled, very active minutes,calories burned, etc. The physical contact logic 142 can include logicthat calculates or determines when particular physical contact canqualify as an input. To qualify as an input, the physical contactdetected by sensors 156 should have a particular pattern that isidentifiable as input. For example, the input may be predefined to be adouble tap input, and the physical contact logic 142 can analyze themotion to determine if a double tap indeed occurred in response toanalyzing the sensor data produced by sensors 156.

The display interface logic 144 is configured to interface with theprocessor and the motion-activated messaging logic to determine whenspecific messages will be displayed on the display screen 122 of theactivity tracking device 100. The display interface logic 144 can act toturn on the screen, display metric information, display characters oralphanumeric information, display graphical user interface graphics, orcombinations thereof. Alarm management logic 146 can function to providea user interface and settings for managing and receiving input from auser to set an alarm. The alarm management logic can interface with atimekeeping module (e.g., clock, calendar, time zone, etc.), and cantrigger the activation of an alarm. The alarm can be in the form of anaudible alarm or a non-audible alarm.

A non-audible alarm can provide such alarm by way of a vibration. Thevibration can be produced by a motor integrated in the activity trackingdevice 100. The vibration can be defined to include various vibrationpatterns, intensities, and custom set patterns. The vibration producedby the motor or motors of the activity tracking device 100 can bemanaged by the alarm management logic 146 in conjunction with processingby the processor 106. The wireless communication logic 148 is configuredfor communication of the activity tracking device with another computingdevice by way of a wireless signal. It should be appreciated that theactivity tracking device may communicate directly with another computingdevice, or indirectly via any number of intermediary devices, such as awireless router, or other types of networking equipment (e.g. routers,switches, repeaters, etc.). The wireless signal can be in the form of aradio signal. As noted above, the radio signal can be in the form of aWi-Fi signal, a Bluetooth signal, a low energy Bluetooth signal, orcombinations thereof. The wireless communication logic can interfacewith the processor 106, storage 108 and battery 154 of device 100, fortransferring activity data, which may be in the form of motion data orprocessed motion data, stored in the storage 108 to the computingdevice.

In one embodiment, processor 106 functions in conjunction with thevarious logic components 140, 142, 144, 146, and 148. The processor 106can, in one embodiment, provide the functionality of any one or all ofthe logic components. In other embodiments, multiple chips can be usedto separate the processing performed by any one of the logic componentsand the processor 106. Sensors 156 can communicate via a bus with theprocessor 106 and/or the logic components. The storage 108 is also incommunication with the bus for providing storage of the motion dataprocessed or tracked by the activity tracking device 100. Battery 154 isprovided for providing power to the activity tracking device 100.

FIG. 2 illustrates an example of activity tracking device 100 incommunication with a remote device 200. Remote device 200 is a computingdevice that is capable of communicating wirelessly with activitytracking device 100 and with the Internet 160. Remote device 200 cansupport installation and execution of applications. Such applicationscan include an activity tracking application 202. Activity trackingapplication 202 can be downloaded from a server. The server can be aspecialized server or a server that provides applications to devices,such as an application store. Once the activity tracking application 202is installed in the remote device 200, the remote device 200 cancommunicate or be set to communicate with activity tracking device 100(Device A). The remote device 200 can be a smartphone, a handheldcomputer, a tablet computer, a laptop computer, a desktop computer, orany other computing device capable of wirelessly interfacing with DeviceA and the Internet.

In one embodiment, remote device 200 communicates with activity trackingdevice 100 over a Bluetooth connection. In one embodiment, the Bluetoothconnection is a low energy Bluetooth connection (e.g., Bluetooth LE,BLE, or Bluetooth Smart). Low energy Bluetooth is configured forproviding low power consumption relative to standard Bluetoothcircuitry. Low energy Bluetooth uses, in one embodiment, a 2.4 GHz radiofrequency, which allows for dual mode devices to share a single radioantenna. In one embodiment, low energy Bluetooth connections canfunction at distances up to 50 meters, with over the air data ratesranging between 1-3 megabits (Mb) per second. In one embodiment, aproximity distance for communication can be defined by the particularwireless link, and is not tied to any specific standard. It should beunderstood that the proximity distance limitation will change inaccordance with changes to existing standards and in view of futurestandards and/or circuitry and capabilities.

Remote device 200 can also communicate with the Internet 160 using anInternet connection. The Internet connection of the remote device 200can include cellular connections, wireless connections such as Wi-Fi,and combinations thereof (such as connections to switches betweendifferent types of connection links). The remote device, as mentionedabove, can be a smartphone or tablet computer, or any other type ofcomputing device having access to the Internet and with capabilities forcommunicating with the activity tracking device 100.

A server 220 is also provided, which is interfaced with the Internet160. The server 220 can include a number of applications that servicethe activity tracking device 100, and the associated users of theactivity tracking device 100 by way of user accounts. For example, theserver 220 can include an activity management application 224. Theactivity management application 224 can include logic for providingaccess to various devices 100, which are associated with user accountsmanaged by server 220. Server 220 can include storage 226 that includesvarious user profiles associated with the various user accounts. Theuser account 228 a for user A and the user account 228 n for user N areshown to include various information.

The information can include, without limitation, data associated withmotion-activated messaging 230, user data, etc. As will be described ingreater detail below, the motion-activated messaging data 230 includesinformation regarding a user's preferences, settings, and configurationswhich are settable by the user or set by default at the server 220 whenaccessing a respective user account. The storage 226 will include anynumber of user profiles, depending on the number of registered usershaving user accounts for their respective activity tracking devices. Itshould also be noted that a single user account can have various ormultiple devices associated therewith, and the multiple devices can beindividually customized, managed and accessed by a user. In oneembodiment, the server 220 provides access to a user to view the userdata 232 associated with activity tracking device.

The data viewable by the user includes the tracked motion data, which isprocessed to identify a plurality of metrics associated with the motiondata. The metrics are shown in various graphical user interfaces of awebsite enabled by the server 220. The website can include various pageswith graphical user interfaces for rendering and displaying the variousmetrics for view by the user associated with the user account. In oneembodiment, the website can also include interfaces that allow for dataentry and configuration by the user.

FIG. 3 illustrates a system for presenting a locally generatednotification, in accordance with an embodiment of the invention. In theillustrated embodiment, an activity monitoring device 300 is configuredto record activity data based on output from various sensors included inthe activity monitoring device 300. The activity data may include rawsensor data and/or data identifying specific user activity processedfrom the raw sensor data, such as individual steps taken over time,changes in distance over time, altitude changes over time, etc. Theactivity data recorded by the activity monitoring device 300 may befurther processed at the activity monitoring device 300 to determinevarious activity metrics which quantify the activity data, such asdetermining the number of steps taken, distance traveled, steps/floorsclimbed, calories burned, active minutes, etc.

During a synchronization operation with a user device 302, the activitymonitoring device 300 uploads the activity data and/or activity metricsto the user device 302. The user device 302 can be any computing device,including, without limitation, a mobile device, cellular phone, tabletcomputer, personal computer, laptop computer, or any other computingdevice that may be configured to present notifications in accordancewith embodiments described herein. It will be appreciated that duringthe synchronization operation, previously collected activity data and/oractivity metrics can be uploaded to the user device 302. In addition,synchronization may entail ongoing updates from the activity monitoringdevice 300 to the user device 302. That is, as new activity data ormetrics are generated at the activity monitoring device 300, they can beuploaded to the user device 302 in a continuing fashion. This continualuploading may occur with various frequency depending upon the desiredlevel of time synchronization between generation of activity data at theactivity monitoring device and receipt by the user device. In oneembodiment, updates may occur with sufficient frequency to besubstantially real-time or near real-time. In other embodiments, updatesmay occur with less frequency. In one embodiment, updates occur when newactivity data/metrics are available. In various embodiments, updatesoccur when a threshold amount of new activity data is accumulated, orwhen a threshold change in activity data/metrics occurs, or whenspecific types of activity data are generated, etc. Additionally, itwill be appreciated that in various embodiments, various combinations oftechniques can be employed to provide ongoing continual updates from theactivity monitoring device 300 to the user device 302.

At the user device 302, the activity data/metrics can be processed todetermine whether a notification should be provided to the user on theuser device 302. If a notification is triggered, then a localnotification generation process occurs, and a notification is providedto the user at the user device 308. In one embodiment, the notificationdefines a display of a notification message 306 on a display 304 of theuser device 302. In the illustrated embodiment, the notification message306 is configured to congratulate the user, and the display of thenotification message 306 further includes buttons which allow the userto close the message, or launch an application on the user device 302for interfacing with the activity monitoring device 300. In otherembodiments, additional methods for notifying the user can be activated,such as a flashing light or a sound or a vibration/haptic feedback atthe user device 302.

A notification can be triggered based on the activity data/metrics in anumber of ways, and the specific embodiments described herein areprovided by way of example, and not by way of limitation. For example,in some embodiments, a notification is presented when a threshold for aparticular activity metric is reached. By way of example, a notificationmay be presented when one of the following thresholds is reached: athreshold number of steps taken, a threshold number of steps/floors (oraltitude) climbed, a threshold distance traveled, a threshold number ofactive minutes achieved, a threshold number of calories burned, etc.

Thresholds may define goals for the user to attain. Such goals can begeneric or otherwise system-defined goals, such as specific milestonesdenoting various achievement levels. Thresholds may also beuser-defined, indicating personal goals of a particular user.Notifications which are triggered by reaching such thresholds can thusbe indicative of achievements by the user, and serve to congratulate orencourage the user in their fitness activity.

Furthermore, in some embodiments, notification thresholds can be definedas a portion (ranging from less than 100% to greater than 100%) of aspecific milestone or goal. It may be useful to inform the user of theirprogress toward a particular goal, and therefore, notificationthresholds can be configured to update the user as they progress towardsthe goal. For example, notification thresholds may be defined at regularsubdivisions of the goal, such as at 25%, 50%, 75%, and 100% of thegoal. In other words, notification thresholds may be defined at thefollowing: 1/n, 2/n, 3/n, etc., where n is the number of portions intowhich the goal metric amount is subdivided. It will be appreciated thatat each of these thresholds, a corresponding notification message can betriggered to be presented on the user device, perhaps indicative of theactivity metric amount relative to the goal that has been achieved, orthe activity metric amount remaining to achieve the goal. Of course, invarious embodiments, some or all of such thresholds may be utilized, andsuch may depend upon user-defined settings defining the notificationthresholds which will trigger notifications presented to a specificuser. For example, the user may indicate that they wish to receivenotifications each time they reach another 20% of their goal, or thatthey only wish to receive a notification when they are within 20% ofachieving their goal (i.e. have reached 80% of their goal) or when theyhave achieved their goal, etc.

Additionally, it will be appreciated that notification thresholds may beset for a predefined quantity of a given activity metric that isremaining to achieve a particular goal. For example, a notificationthreshold may be set for when a user is within x number of steps (orstairs/floors climbed, distance traveled, calories burned, activeminutes, etc.) of reaching their goal. Furthermore, notifications may betriggered when the user reaches a predefined amount exceeding aparticular goal, such as a specific fraction or percentage exceeding thegoal, or a predefined number amount of a specific activity metricexceeding the goal. A notification message triggered by such an eventmay congratulate the user on exceeding the goal or milestone (e.g.congratulate the user on being an “overachiever”).

In the presently described embodiments, it is broadly contemplated thatactivity data and metrics are detected at the activity monitoringdevice, whereas the processing of such data to trigger display of anotification is performed at the user device on which the notificationis displayed. It should be appreciated that this is merely one exampleof a division of processing operations between the activity monitoringdevice and the user device, in order to produce display of anotification on the user device. In other embodiments, the variousprocessing operations which are required to effect display of anotification on the user device can be divided between the activitymonitoring device and the user device in any possible configuration. Forexample, in one embodiment, the processing of the activity data as wellas the triggering of the notification are performed at the activitymonitoring device, and upon triggering of the notification, thenotification message is sent to the user device for display on the userdevice (e.g. a smart watch).

FIG. 4 illustrates a system for triggering notifications on a userdevice based on activity detected by an activity monitoring device, inaccordance with an embodiment of the invention. The illustratedembodiment is conceptually similar to that shown and described withreference to FIG. 3; however, in the embodiment of FIG. 4, thenotification is triggered at a remote server, which in turn isconfigured to push a notification to the user device. As shown, anactivity monitoring device 400 is configured to upload activitydata/metrics to a user device 402 during a synchronization process,which can be a foreground or background synchronization process. Theuser device 402 in turn is configured to upload the activitydata/metrics to a remote server 410 as part of the synchronizationprocess. Additionally, it is noted that the user device 402 may processthe activity data/metrics received form the activity monitoring device400 to generate additional activity data/metrics prior to uploading tothe server 410.

The server 410 is configured to include a synchronization module 412 forhandling the server-side processing of the synchronization procedure,including receiving and storing the activity data/metrics received fromthe user device 402. An activity processing module 414 is configured toprocess or analyze the activity data/metrics to determine whether anotification should be triggered. If it is determined that anotification should be triggered, then notification logic 416 isactivated to generate the notification. The generation of thenotification may include retrieving a notification message thatcorresponds to a given notification threshold, and communicating thenotification message to a notification service 418 and instructing orrequesting the notification service 418 to “push” the notification tothe user device 402. A “push” notification will be understood by thoseskilled in the art to define a notification that is sent to and renderedon a client device (e.g. user device 402 in the illustrated embodiment)by a remote system/server. A push notification is initiated by theremote system (e.g. notification service 418), though the resultingnotification is presented on the client device (e.g. user device 402).One example of a push notification service is the Apple PushNotification Service.

In the illustrated embodiment, a notification message 406 is presentedon the display 404 of the user device 402. By way of example, thenotification message 406 indicates that the user needs 2000 more stepsto reach their goal. Option buttons are presented to either close thenotification, or launch an application that can interface with theactivity monitoring device 4000.

FIG. 5 illustrates components of a system for presenting a notificationon a mobile device, in accordance with an embodiment of the invention.An activity monitoring device 500 is provided for tracking activity of auser. In the illustrated embodiment, the activity monitoring device 500includes a wireless module 502 for handling wireless communication withthe mobile device 512. A sync module 504 is configured to handle datasynchronization operations, including uploading activity data/metricsfrom an activity data storage 506 to the mobile device 512. One or moresensors 510 can include any of various environmental or biometricsensors. A sensor data processing module 508 is configured to processdata generated by the sensors 510.

The mobile device 512 includes a processor 514 and a memory 516 forexecuting and storing program instructions, respectively. A speaker 518is provided for reproducing predefined sounds. A display 520 is providedfor visually rendering information. A haptic feedback module 522 isconfigured to provide tactile feedback, such as vibration of the mobiledevice 512. A wireless module 524 is configured to handle wirelesscommunication of the mobile device, including wireless communicationwith the activity monitoring device 500. In one embodiment, the wirelesscommunication between the activity monitoring device 500 and the mobiledevice 512 is a Bluetooth low energy connection.

A notification presenter 526 is configured to present notifications onthe mobile device. The notification presenter 526 receives requests fromapplications (e.g. application 530) to present a notification on themobile device 512. The requests may define content of the notification,such as a message, sound, haptic feedback, whether an option to launchthe application (in the foreground) from which the notification requestwas generated, etc. In response to receiving a notification request, thenotification presenter 526 is configured to activate the relevantmodules of the mobile device 512 to present the notification to theuser. For example, a message may be displayed on the display 520, or asound may be played through the speaker 518, or haptic sensations may beprovided via the haptic module 522.

The application 530 includes a sync module 532 for handlingsynchronization operations with the activity monitoring device 500,including receiving activity data/metrics from the activity monitoringdevice 500. This may occur over the aforementioned wireless connectionvia the wireless module 524. The application 530 may define a graphicaluser interface 534 configured to enable the user to comprehend data fromthe activity monitoring device 500, as well as manage the device. Anactivity data processing module 536 is configured to process and analyzeactivity data/metrics received from the activity monitoring device 500.This may entail generation of and/or updating of activity metrics.

A notification generator 538 is configured to determine when to triggera notification based on activity data/metrics of the user. As has beendiscussed, various thresholds may be defined based on various activitymetric goals. The notification generator 538 can thus be configured tocompare a particular activity metric against one or more predefinedthreshold values to determine whether or not to trigger a notificationto the user. When a given predefined threshold value is reached, thenthe notification generator 538 is configured to retrieve and associatednotification message and generate a notification to the user. If thenotification is to be presented immediately, then the notificationpresenter 526 is activated. The notification generator 538 communicatesthe relevant parameters of the notification, including the notificationmessage content and any other optionally define parameters, to thenotification presenter 526, which is then configured to execute therendering of the notification, such as by displaying the notificationmessage on the display 520 of the device 512.

The notification generator 538 may also be configured to determinewhether the present time is an appropriate time to provide anotification to the user. For example, it may not be desirable toprovide a notification to the user during hours of the day when the useris likely to be asleep, or when it can be determined that the user isotherwise unlikely to be able to view or comprehend notification. Insuch instances, it can be useful to schedule notification for a latertime. Therefore, the notification generator 538 can be configured toactivate a notification scheduler 528, which receives the relevantinformation defining the notification, and schedules the rendering ofthe notification on the mobile device 512 for a later time. In anotherembodiment, the notification scheduler 528 can be configured to schedulethe notification for rendering during a specified time window or periodof time. In another embodiment, the notification scheduler 528 functionsas a configurable timer that then triggers the notification generator538 to activate the notification presenter 526 in order to render thenotification to the user. It should be appreciated that thoughnotifications can be scheduled for rendering, the actual rendering ofthe scheduled notification can be subject to other considerations (e.g.current state of activity detected via the activity monitoring device,or other considerations described herein for determining whether torender a notification).

It will be appreciated that there can be many instances when the user isunlikely to be able to view or comprehend the notification, or when itis otherwise undesirable to provide a notification to the user, eventhough a notification threshold has been reached. For example, dataobtained from a calendar associated with the user may indicate that theuser is busy or occupied during a specific time period, and therefore itis not desirable to notify the user during the specific time period. Itmight also be determined that the user is currently engaged in physicalactivity based on data received from the activity monitoring device, andthat the user is therefore unavailable to receive a notification.

In one embodiment, real-time data received from the activity monitoringdevice is analyzed to determine a current state of activity of the user,and based on the determined state of activity, a notification can berendered to the user in immediate response to reaching a particularactivity metric threshold, or may be delayed. However, in otherembodiments, the current state of activity can be utilized to determinewhether to present, or delay the presentation of, the notificationmessage. The state of activity of the user can identify particularphysical activity states, such as running, walking, swimming, biking,etc. which may be applied to determine when to present a notificationmessage. For example, a user might reach a milestone during the courseof a run, and so a notification message is prepared for the user.However, the presentation of the notification message can be delayeduntil it is determined that the user has slowed to a walk or otherwisestopped running. In this manner, the notification is presented to theuser during a time when the user is more likely to be able or willing toview it.

In some embodiments, location data (e.g., GPS data) can be utilized todetermine when to present a notification message. For example, locationdata can be analyzed to determine the current speed or location of theuser, and a notification message may be presented or delayed based onthe speed or location of the user. In one embodiment, a notificationmessage may be presented when the current speed is determined to bebelow a predefined threshold speed. Otherwise, when the current speedreaches or exceeds the predefined threshold speed, the presentation ofthe notification message is delayed until it falls below the predefinedthreshold speed. In another embodiment, variance in the speed of theuser can be utilized to determine when to present a notificationmessage. For example, in one embodiment, a notification message ispresented if the speed of the user varies by less than a predefinedamount; whereas the notification message is not presented if thevariance of the speed of the user reaches or exceed the predefinedamount.

In another embodiment, location data can be analyzed to determine theuser's location with respect to geographical features, and thepresentation of notification messages can be determined based on suchinformation. For example, a notification message might be presented whenit is determined that the user has reached the end of a trail, orclimbed to the top of a hill, etc. In another example, a notificationmessage might be delayed until it is determined that the user hasreturned to a particular geographic location, such as their home ortheir starting point (e.g., a parking lot, trailhead, etc.).

In one embodiment, when it is determined that the user is currentlyengaged in physical activity having an intensity level above a certainthreshold, then the rendering of the notification is delayed until theintensity level of the physical activity is reduced to the threshold. Inanother embodiment, if it is determined based on real-time data receivedfrom the activity monitoring device that the user is currently sleeping,then the notification is delayed until it is determined that the user iscurrently awake. The foregoing examples of activity based delay of anotification are provided merely by way of example, without limitation.In various embodiments, it will be appreciated that activity of a useras determined from real-time data received from the activity monitoringdevice can be analyzed in a variety of ways to determine when it isappropriate to render a notification to the user, and thereby delay orschedule or present a notification accordingly.

FIG. 6 illustrates a system for rendering a notification to a user basedon tracked activity of the user, in accordance with an embodiment of theinvention. An activity monitoring device 600 is configured to detect andrecord activity of the user, and includes activity data storage 604 forstoring such detected activity of the user. A synchronization module 602is configured to handle synchronization operations with a mobile device606, including uploading of activity data/metrics to the mobile device606.

The mobile device 606 includes an application 608 that is configured tointerface with the activity monitoring device 600. The application 608includes a synchronization module 610 that is configured to handlesynchronization operations at a mobile device 606, which may includereceiving activity data/metrics from the activity monitoring device 600,as well as uploading activity data/metrics to a synchronization server618. It will be appreciated that activity data and/or metrics can beprocessed to various extents by each of the activity monitoring device600 and the mobile device 606.

The synchronization server 618 is configured to receive and store theactivity data/metrics from the mobile device 606 into an activity datastorage 620. An activity analyzer 624 is configured to access profiledata associated with the user of the activity monitoring device from aprofile data storage 630. This profile data can define one or moreactivity metric goals for the user. In addition, the profile data maydefine various notification thresholds in relation to a specificactivity metric goal, as has been discussed above. By way of example,one threshold may be defined for when a user's activity metricapproaches to within a certain amount of the activity metric goal,another defined by the activity metric goal itself, and another definedwhen the user exceeds the activity metric goal by a certain amount. Eachof these thresholds can be associated with a particular notificationmessage that is stored in a message library 628.

The activity analyzer 624 includes a threshold evaluation module 626that is configured to determine when the relevant activity metric of theuser reaches a predefined threshold, and thereupon trigger anotification generator 622 to retrieve the notification messageassociated with the predefined threshold from the message library 628,and activate a notification service 632 to send a push notificationrequest to the mobile device 606. In one embodiment, the notificationgenerator 622 accesses an API of notification service 632, providing arequest to the notification service 632 with relevant parametersincluding the contents of the notification message and identification ofthe specific mobile device 606 to which the push notification is to besent.

Mobile device 606 includes a notification handler 612 that is configuredto manage notification requests. In the illustrated embodiment, thenotification handler 612 of the mobile device 606 receives a pushnotification requests from the notification service 632, and, andactivates a notification presenter 614 that is configured to render thepush notification on the mobile device 606. Alternatively, thenotification handler 612 also includes a notification scheduler 616 thatis configured to schedule the push notification for rendering at a latertime.

Though systems for presenting a notification to a user have beendescribed with reference to presentation of the notification on a mobiledevice, it will be appreciated by those skilled in the art thatnotifications in accordance with various embodiments of the inventioncan be rendered on any other type of computing device that is configuredfor rendering such notifications. It will be understood that anotification may be presented to a user in different formats dependingupon the context in which the notification is rendered. For example,during an active session of the computing device, the notification maybe rendered as a pop up message or window within the contextualoperating environment on the computing device, and clicking on anappropriate location may cause it to disappear, or may activate theactivity tracking application for viewing information that is related tothe notification.

In a mobile device operating environment, a notification presentationmay depend upon whether its associated application is presently runningin the foreground. If so, then the notification information (or payload)may be passed directly to the foreground application and is handled bythe application based on the application's configuration. Whereas, ifthe application is not running or is only running in the background,then the notification is rendered (or scheduled to be rendered) on themobile device with an option to “view” or otherwise launch theapplication into the foreground. Selection of this option may cause thenotification payload to be passed to the application, as the applicationis launched into the foreground.

In various embodiments, it will be appreciated that notifications inaccordance with embodiments of the invention can be generated based anumber of factors, alone or in combination. FIG. 7 illustrates a varietyfactors which may be considered for purposes of triggering anotification, in accordance with embodiments of the invention.Furthermore, the content of a resulting notification can include or bebased upon data defined by such factors. In the illustrated embodiment,a notification engine 700 is configured to evaluate the various factorsand generate a notification based on such factors when it is determinedthat a notification should be provided to the user. Broadly speaking,notification data may be generated to define a given notification,including such information items as the following: message content 704which defines text for a notification; a style 706 designating aparticular style for the notification, such as a pop-up message, abadged icon, or other selectable notification style; a sound 708defining or identifying audio to be rendered in accordance with thenotification; a date/time 710 at which the notification is to berendered.

As has been discussed, specific goals and/or milestones can be utilizedto define thresholds for activity metrics of a user which will triggergeneration of notifications. In addition to these threshold-basedtriggers, notifications can be defined in relation to user activity inother ways. For example, the notification generator 700 can beconfigured to generate notifications at regular intervals (e.g. daily,weekly, etc.) which update the user about one or more activity metrics,or their progress toward a goal/milestone, etc. The content of suchnotifications might include a current amount of a particular activitymetric or an amount remaining to achieve a particular goal or milestone.

In another embodiment, notifications can be generated based on adetected change in activity data/metrics, such as an increase ordecrease in the activity data/metric by a certain amount. The detectedchange may also be considered relative to the amount of time over whichthe change occurs. For example, a change of a particular amountoccurring within a particular timespan may trigger a notification (e.g.user runs a mile in eight minutes, burns 500 calories in an hour, climbsten floors in three minutes, etc.). In another embodiment, a changerelative to an earlier time period may trigger a notification (e.g.increasing/decreasing the number of steps taken in a week over thattaken during the previous week). In other embodiments, personal bestaccomplishments for a given user may trigger notifications (e.g. walkingthe most steps, or burning the most calories, or climbing the moststairs/floors, or traveling the greatest distance, over a given timespansuch as a single day). In another embodiment, achieving a particularrate of change in an activity metric may trigger a notification (e.g.running at or above a particular speed, climbing at or above aparticular rate of altitude gain, exercising at or above a particularcalorie burning rate, etc.). It will be appreciated that in theforegoing embodiments relating to notifications generated in response todetected changes in activity data/metrics, the content of suchnotifications can include or be based upon the data which defines thechange in the activity data/metrics. Such notifications may also includecongratulatory messages, an option to share to a social network, etc.

It will be appreciated that notifications can be triggered and generatedbased on any number of activity metrics, including a number of stepstaken, number of floors/stairs climbed, distance traveled, number ofactive minutes, calories burned, etc. Notifications may also betriggered or generated based on additional fitness related information,such as an indicated or calculated weight of the user, nutritioninformation provided by or otherwise associated with the user, etc.Additionally, notifications can be generated based on numerous otherfactors, some of which are described herein by way of example, withoutlimitation.

In one embodiment, the notification may be generated based on anidentified location of the user. For example, the notification might betriggered by a change in location of the user, such as detection thatthe user has moved to a different city, state, or country. The contentof a notification can be configured to be location sensitive, forexample, utilizing the appropriate language of the identified locationof the user, which may also include the usage of local terminology orslang.

In one embodiment, a notification can be generated based on a currentdate or time. For example, a notification occurring during the morninghours of the day may include the phrase “good morning.” As anotherexample, on the date of a holiday, the contents of a notification can beconfigured to reference the holiday or otherwise be appropriate to theholiday (e.g. “Happy Halloween”). A similar concept can be extended toencompass multiple days or seasons, wherein notification messages duringsuch time include content that is thematically appropriate to the season(e.g. “Happy holidays!”).

In one embodiment, a notification can be generated based on the currentor forecasted weather, which may be determined in accordance with anidentified location of the user. For example, if the weather isdetermined to be cold, then a notification may encourage the user todress warmly, whereas if the weather is determined to be hot, then anotification may encourage the user to stay hydrated. It will beappreciated that a great variety of weather appropriate messages can begenerated as notifications to the user.

In one embodiment, a notification can be generated based on a calendarassociated with a given user. For example, the timing of notificationscan be determined in part based on the user's calendar, such as byavoiding sending notifications to the user during times when it isindicated on the calendar that the user is busy or occupied. Anotification might reference a specific event listed on the user'scalendar, such as in the case of a reminder notification which remindsthe user about an upcoming event, or a post-event notification occurringafter the expiration of an event on the user's calendar. A post-eventnotification might encourage a user to log details about the event,share to a social network, etc.

In a related embodiment, a notification can be generated based on localor community events occurring in the geographic vicinity of the user. Anotification might inform a user about an upcoming event (e.g. a localcharity run), or if it is known that a user has participated in such anevent, then the notification might encourage the user to log detailsabout the event, rate the event, share about the event to the socialnetwork, etc.

In one embodiment, a notification can be generated based on socialnetwork activity associated with the user, such as posts generated byfriends/members of a social graph of the user.

FIG. 8 illustrates a system for enabling a first user to define anotification for presentation to a second user, in accordance with anembodiment of the invention. In the illustrated embodiment, the firstuser 800 interacts with a user device 802. The first user 800 accesses anotification generation user interface 806, which may be included aspart of an application or accessed via a browser as indicated byreference 804. Broadly speaking, the notification generation userinterface 806 provides tools for the user 800 to define the contents andother options for a notification to be presented to a second user 816.By way of example, the user interface 806 may provide a text entryinterface for the user 800 to enter text to be included in thenotification, a user selection interface for the user 800 to identifythe user to whom the notification will be sent, as well as other optionswhich may define various aspects of the notification.

These definitional aspects of the notification as specified by the user800 are communicated over the network 808 to a user-defined notificationgenerator 810. The user-defined notification generator 810 is configuredto send a request to a notification service 812 to generate anotification to the second user 816 based on the parameters provided bythe first user 800. The notification service 812 in turn generates apush notification to a corresponding mobile device 814 that isassociated with the user 816. Though a push notification to a mobiledevice is generally contemplated in accordance with embodiments of theinvention, it will be appreciated that in other embodiments other typesof devices accommodating other types of notification schemas can beemployed to allow a notification having parameters defined by a firstuser to be sent to a second user.

FIG. 9 illustrates a graphical user interface for accessing activityrelated information of a user based on an activity monitoring device, inaccordance with an embodiment of the invention. In the illustratedembodiment, a number of informational panels or modules are shown,providing information about various aspects of the user's activity asdefined based on data from an activity monitoring device. An activitymodule 900 is configured to provide a graphical display of the number ofsteps taken, floors climbed, or calories burned over time. A stepsmodule 902 is configured to display a number of steps taken by a userover a given time period. A calories burned module 904 is configured todisplay a number of calories burned over a given time period. A floorsmodule 906 is configured to display a number of floors climbed by theuser over a given time period. An active versus sedentary module 908 isconfigured to display relative amounts of time spent by the user inactive physical activity versus sedentary activity. An activity levelsmodule 910 is configured to display amount of time spent at variousactivity levels. A distance module 912 is configured to display adistance traveled by the user over a given period of time. A badgesmodule 914 is configured to display badges or other types of milestonerelated data based on the activity of the user. A weight module 916 isconfigured to display current and/or historical weight data to the user.

A friends module 918 is configured to display friends of the user thatmay be in a social graph associated with the user. In one embodiment,the friends module 918 can be configured to provide a leaderboarddisplay wherein activity data/metrics associated with friends of theuser are shown, and wherein such friends may be listed in a ranked orderbased on the activity data/metrics, thereby providing a leaderboard withrespect to a given activity data or metric. It will be appreciated thatthe user may select a given friend identified by the friends module 918and generate or define a notification to be sent to the selected friend.Additionally, it is noted that notifications may be generated based onactivity data/metrics associated with friends of the user, such asinformational notifications when a friend achieves a certain goal ormilestone, when a friend surpasses the user with respect to particularactivity data/metrics, when the user surpasses a friend with respect toparticular activity data/metrics, etc.

FIGS. 10A-10C illustrate embodiments of communication operations betweenan activity tracking device, a client device, and a backend server, inaccordance with one embodiment of the present invention.

The communication described with reference to the flow diagrams in FIGS.10A-10C should only be viewed as exemplary of operations that occurbetween the activity tracking device, a client device (computingdevice), and a backend server (server). In this illustrated example,thick pointed arrows indicate that a connection interval has been scaledup so as to operate data transfers at a first data transfer rate, whilea thin pointed arrow indicates a connection interval that has beenscaled down so as to operate data transfers at a second data transferrate.

In one embodiment, the first transfer rate is designed to allow thetransfer of larger amounts of data that have been stored on the activitytracking device over a period of time, such as since the last connectionwas made to a computing device. The activity tracking data stored on theactivity tracking device can include, for example, motion dataassociated with the various activities performed by a user, data sensedby the activity tracking device, or data measured by the activitytracking device.

The various activities may include, without limitation, walking,running, jogging, walking up and down stairs, and general movement.Other information that can be stored by the activity tracking device caninclude, for example, measured information such as heart rateinformation, temperature information, etc. In one embodiment, storage ofthe activity tracking device will store this information for a period oftime until a connection is made to a client device, such as a computingdevice configured to sync with the activity tracking device. In oneembodiment, the computing device (client device) can be a smart phone, atablet computer, a laptop computer, a desktop computer, or a generalcomputing device.

In one embodiment, the first transfer rate is defined by scaling up theconnection interval of the communication channel established between theactivity tracking device and the client device. For example, if thecommunication channel is a low energy Bluetooth connection, theconnection interval can be scaled to enable a transfer of packets thatis more frequent than the second transfer rate.

First Transfer Rate (Connection Interval Scale-Up)

The connection interval for the first transfer rate can be scaled up toset a throughput of packets, such that each packet is transferred inless than about 200 milliseconds (ms). In one example embodiment, thefirst transfer rate is set to transfer one packet every about 10 ms toabout 30 ms. In another example embodiment, the first transfer rate canbe one packet every about 20 ms. In one embodiment, each packet is about20 bytes.

In one embodiment, the first data transfer rate may be defined in termsof a frequency, in a range of between about 500 Bps (bytes per second)and about 2 kBps (kilobytes per second). In one example data transferrate is about 1 kBps (kilobyte per second).

Second Transfer Rate (Connection Interval Scale-Down)

The connection interval for the second transfer rate can scaled down toset a throughput of packets, such that each packet is transferred at aninterval that is greater than about 200 milliseconds (ms). In oneexample embodiment, the second transfer rate is set to transfer a packetevery 500 ms. In some embodiments, depending on the frequency of eventsor lack of events, the transfer rate can be set to update only afterseveral seconds (e.g., about 1-10 seconds). In one embodiment, eachpacket is about 20 bytes.

In one embodiment, the second data transfer rate may define a frequencyvalue that is less than 500 bps (bytes per second). In anotherembodiment, the second data transfer rate can be set to a value that isless than 100 bps (bytes per second). In still another example, thesecond data transfer rate can be about 1 Bps (1 byte per second). Insome embodiments, depending on the frequency of events or lack ofevents, the transfer rate can be scaled down even further.

It should be understood that these example rates, parameters, and/orsizes can change over time, depending on standards, customizations,and/or optimizations. So therefore, these parameters should only beviewed as examples. It is further understood that the methods anddevices defined herein can implement embodiments that include more thantwo data transfer rates. In fact, the number of data transfer rates caninclude any number, based on a number of predefined scaled up or scaleddown connection intervals. The number of intervals will vary, of course,depending on the implementation.

By scaling the connection intervals up or down, it is not the actualthroughput that is being changed, but rather the possible bandwidth thatcan be supported by the channel. In the first data transfer rate, thescaled setting uses almost all of the channel bandwidth. In the seconddata transfer rate, most of the available channel bandwidth goes unused.A consideration for both transfer rates is latency, so the system doesnot want to have to wait too long before a single event (e.g.,essentially one bit of information) can go from one device to another.

Returning to FIG. 10A, activity begins in operation 1002 where theactivity tracking device detects and stores activity data associatedwith motion or data collected by the device. In the example of FIG. 10A,it is assumed that the activity tracking device has never beensynchronized a website (e.g., site) of a server. Therefore, a pairing ofthe activity tracking device to the site needs to occur, at least once.

The client device, in operation 1008 may detect that an application isopened on the client device. The application that is opened is theactivity tracking application 202, for example. In operation 1010, theclient device begins to pair with the activity tracking device. Pairingmay occur, for example, upon request of a user that initiates thepairing.

The pairing, in this embodiment is a pairing between the activitytracking device and the site, which is enabled via the computing deviceclient. For example, the scanning, connecting and data transfer at thecomputing device will enable the pairing with the site. If the activitytracking device has activity data, it will also be synchronized with thesite, as shown in 1024 and 1025. The communication between the computingdevice and the activity tracking device is carried out in accordancewith the first transfer rate, which uses a scaled-up connection intervalto transfer data. The first transfer rate can include, for example,command data 1030 requesting data from the activity tracking device,sending data 1032, and acknowledgement information 1034 for receiveddata. At this point, the user may wish to close application 1014 at theclient computing device.

In FIG. 10B, an example is shown of a connection where the activitytracking device had previously been paired to the site on the server, inaccordance with one embodiment of the present invention. In operation1002, activity data is detected and stored on the activity trackingdevice. At some point, an application is opened 1008 at the computingdevice. As noted above, the application may be an activity trackingapplication 202. An update condition is detected by the client device,which is identified by opening the application. The update conditionwill act to scale-up the connection interval, so as to set a first datatransfer rate.

The thick arrows 1030, 1032 and 1034 represent the first data transferrate, which is a faster transfer rate than the second transfer rate.Once the syncing with the site 1004 and sync 1025 is complete, using thescanning, connecting and data transfer 1012 of the client, the operationof real-time client display updates 1006 is processed.

The update condition has now changed, which causes a scale down of theconnection intervals between the activity tracking device and thecomputing device. This, as noted above, causes the second transfer rateto govern for data exchanged to the computing device for real-time datadisplay. In one embodiment, arrow 1036 indicates a request from thecomputing device for real time updates. Arrows 1038 indicate datatransfers of any data available for transfer, using the second datatransfer rate. Arrow 1039 indicate a command that the client device hasclosed the application 1014, so that the device can stop sendingupdates.

FIG. 10C illustrates an embodiment where the activity tracking device isconnected to the computing device, without a connection with the server.Without server connection, the computing device (client) will notestablish a pairing with the server, but instead will only establish aconnection with the activity tracking device to perform real-time clientdisplay updates. As noted above, the activity tracking device will beset to communicate with the computing device using the second transferrate, which is a result of scaling down the connection interval forperforming the transfer of updates.

In this embodiment, the transfer of updates takes place to the computingdevice, which can display updates from the tracker in substantial realtime. In one embodiment, the updates are transferred at a rate that issubstantially not noticeable to a user viewing a changing screen ordisplay of the computing device (e.g., the display of a smartphone, asmart watch, glasses device, etc.). In one example, the substantialreal-time updates occur with transfer delay to the display that is lessthan about 2 seconds. In other embodiments, the transfer delay is lessthan about 1 second. In still other embodiments, the transfer delay isless than about 0.6 second. To human perception, the updates wouldappear to occur in real-time, wherein the updated activity data iscontinuously updated to the client device, and the display changescontinuously or intermittently, depending on whether activity wascaptured or not. In some embodiments, the real time display will shownumbers on a screen changing, such as counting steps, counting stairs,showing distance traveled, etc.

The communication between the client device and the server is executedusing an Internet connection link, such as a Wi-Fi connection orcellular connection. As noted in this disclosure, the activity trackingdevice can be a wearable device on the wrist of a user, or a device thatcan be held by the user or attached to the user's clothing. As the userengages in motion or activities, the captured information can betransferred directly to the client device, such as a smart phone havingan activity tracking application.

If the activity tracking application is open, and the user is viewingone or more screens or data provided by the activity trackingapplication, that motion or activity data is transferred to the smartphone for display. Thus, if the user is currently viewing a screen thatdisplays metric data associated with the activity being performed by theuser, that activity can be updated substantially in real time as theuser engages in the activity. For example, if the user is walking whileviewing the screen that displays the number of steps, the number ofsteps can be shown to increase as the user is walking and viewing thedisplay on the smart phone.

As the flow diagrams of FIGS. 10A-10C show, communication is managedbetween activity tracking device, the computing device, and the backendserver. However, it should be understood that the communication betweenthe activity tracking device and the client device can occur withouthaving any Internet connection or connections to the backend server, asnoted with response to FIG. 10C. When Internet connection is establishedby the client device at some point, the client device can thensynchronize with the backend server, such as during background syncs, orwhen the app on the client device is again opened.

FIG. 11 illustrates an example where various types of activities ofusers 1400A-1400I can be captured by activity tracking devices 100, inaccordance with one embodiment of the present invention. As shown, thevarious types of activities can generate different types of data thatcan be captured by the activity tracking device 100. The data, which canbe represented as motion data (or processed motion data) can betransferred 1420 to a network 176 for processing and saving by a server,as described above. In one embodiment, the activity tracking device 100can communicate to a device using a wireless connection, and the deviceis capable of communicating and synchronizing the captured data with anapplication running on the server. In one embodiment, an applicationrunning on a local device, such as a smart phone or tablet or smartwatch can capture or receive data from the activity tracking device 100and represent the tract motion data in a number of metrics.

In one embodiment, the device collects one or more types ofphysiological and/or environmental data from embedded sensors and/orexternal devices and communicates or relays such metric information toother devices, including devices capable of serving asInternet-accessible data sources, thus permitting the collected data tobe viewed, for example, using a web browser or network-basedapplication. For example, while the user is wearing an activity trackingdevice, the device may calculate and store the user's step count usingone or more sensors. The device then transmits data representative ofthe user's step count to an account on a web service, computer, mobilephone, or health station where the data may be stored, processed, andvisualized by the user. Indeed, the device may measure or calculate aplurality of other physiological metrics in addition to, or in place of,the user's step count.

Some physiological metrics include, but are not limited to, energyexpenditure (for example, calorie burn), floors climbed and/ordescended, heart rate, heart rate variability, heart rate recovery,location and/or heading (for example, through GPS), elevation,ambulatory speed and/or distance traveled, swimming stroke/lap count,racquet swings/hits, golf swings, bicycle distance and/or speed, bloodpressure, blood glucose, skin conduction, skin and/or body temperature,electromyography, electroencephalography, weight, body fat, caloricintake, nutritional intake from food, medication intake, sleep periods(i.e., clock time), sleep phases, sleep quality and/or duration (e.g.number of time awoken), pH levels, hydration levels, and respirationrate. The device may also measure or calculate metrics related to theenvironment around the user such as barometric pressure, weatherconditions (for example, temperature, humidity, pollen count, airquality, rain/snow conditions, wind speed), light exposure (for example,ambient light, UV light exposure, time and/or duration spent indarkness), noise exposure, radiation exposure, and magnetic field.

Still further, other metrics can include, without limitation, caloriesburned by a user, weight gained by a user, weight lost by a user, stairsascended, e.g., climbed, etc., by a user, stairs descended by a user,steps taken by a user during walking or running, a number of rotationsof a bicycle pedal rotated by a user, sedentary activity data, driving avehicle, a number of golf swings taken by a user, a number of forehandsof a sport played by a user, a number of backhands of a sport played bya user, or a combination thereof. In some embodiments, sedentaryactivity data is referred to herein as inactive activity data or aspassive activity data. In some embodiments, when a user is not sedentaryand is not sleeping, the user is active. In some embodiments, a user maystand on a monitoring device that determines a physiological parameterof the user. For example, a user stands on a scale that measures aweight, a body fat percentage, a biomass index, or a combinationthereof, of the user.

Furthermore, the device or the system collating the data streams maycalculate metrics derived from this data. For example, the device orsystem may calculate the user's stress and/or relaxation levels througha combination of heart rate variability, skin conduction, noisepollution, and sleep quality. In another example, the device or systemmay determine the efficacy of a medical intervention (for example,medication) through the combination of medication intake, sleep and/oractivity data. In yet another example, the device or system maydetermine the efficacy of an allergy medication through the combinationof pollen data, medication intake, sleep and/or activity data. Theseexamples are provided for illustration only and are not intended to belimiting or exhaustive.

This information can be associated to the users account, which can bemanaged by an activity management application on the server. Theactivity management application can provide access to the users accountand data saved thereon. The activity manager application running on theserver can be in the form of a web application. The web application canprovide access to a number of websites screens and pages that illustrateinformation regarding the metrics in various formats. This informationcan be viewed by the user, and synchronized with a computing device ofthe user, such as a smart phone.

In one embodiment, the data captured by the activity tracking device 100is received by the computing device, and the data is synchronized withthe activity measured application on the server. In this example, dataviewable on the computing device (e.g. smart phone) using an activitytracking application (app) can be synchronized with the data present onthe server, and associated with the user's account. In this way,information entered into the activity tracking application on thecomputing device can be synchronized with application illustrated in thevarious screens of the activity management application provided by theserver on the website.

The user can therefore access the data associated with the user accountusing any device having access to the Internet. Data received by thenetwork 176 can then be synchronized with the user's various devices,and analytics on the server can provide data analysis to providerecommendations for additional activity, and or improvements in physicalhealth. The process therefore continues where data is captured,analyzed, synchronized, and recommendations are produced. In someembodiments, the captured data can be itemized and partitioned based onthe type of activity being performed, and such information can beprovided to the user on the website via graphical user interfaces, or byway of the application executed on the users smart phone (by way ofgraphical user interfaces).

In an embodiment, the sensor or sensors of a device 100 can determine orcapture data to determine an amount of movement of the monitoring deviceover a period of time. The sensors can include, for example, anaccelerometer, a magnetometer, a gyroscope, or combinations thereof.Broadly speaking, these sensors are inertial sensors, which capture somemovement data, in response to the device 100 being moved. The amount ofmovement (e.g., motion sensed) may occur when the user is performing anactivity of climbing stairs over the time period, walking, running, etc.The monitoring device may be worn on a wrist, carried by a user, worn onclothing (using a clip, or placed in a pocket), attached to a leg orfoot, attached to the user's chest, waist, or integrated in an articleof clothing such as a shirt, hat, pants, blouse, glasses, and the like.These examples are not limiting to all the possible ways the sensors ofthe device can be associated with a user or thing being monitored.

In other embodiments, a biological sensor can determine any number ofphysiological characteristics of a user. As another example, thebiological sensor may determine heart rate, a hydration level, body fat,bone density, fingerprint data, sweat rate, and/or a bioimpedance of theuser. Examples of the biological sensors include, without limitation, abiometric sensor, a physiological parameter sensor, a pedometer, or acombination thereof.

In some embodiments, data associated with the user's activity can bemonitored by the applications on the server and the users device, andactivity associated with the user's friends, acquaintances, or socialnetwork peers can also be shared, based on the user's authorization.This provides for the ability for friends to compete regarding theirfitness, achieve goals, receive badges for achieving goals, getreminders for achieving such goals, rewards or discounts for achievingcertain goals, etc.

As noted, an activity tracking device 100 can communicate with acomputing device (e.g., a smartphone, a tablet computer, a desktopcomputer, or computer device having wireless communication access and/oraccess to the Internet). The computing device, in turn, can communicateover a network, such as the Internet or an Intranet to provide datasynchronization. The network may be a wide area network, a local areanetwork, or a combination thereof. The network may be coupled to one ormore servers, one or more virtual machines, or a combination thereof. Aserver, a virtual machine, a controller of a monitoring device, or acontroller of a computing device is sometimes referred to herein as acomputing resource. Examples of a controller include a processor and amemory device.

In one embodiment, the processor may be a general purpose processor. Inanother embodiment, the processor can be a customized processorconfigured to run specific algorithms or operations. Such processors caninclude digital signal processors (DSPs), which are designed to executeor interact with specific chips, signals, wires, and perform certainalgorithms, processes, state diagrams, feedback, detection, execution,or the like. In some embodiments, a processor can include or beinterfaced with an application specific integrated circuit (ASIC), aprogrammable logic device (PLD), a central processing unit (CPU), or acombination thereof, etc.

In some embodiments, one or more chips, modules, devices, or logic canbe defined to execute instructions or logic, which collectively can beviewed or characterized to be a processor. Therefore, it should beunderstood that a processor does not necessarily have to be one singlechip or module, but can be defined from a collection of electronic orconnecting components, logic, firmware, code, and combinations thereof.

Examples of a memory device include a random access memory (RAM) and aread-only memory (ROM). A memory device may be a Flash memory, aredundant array of disks (RAID), a hard disk, or a combination thereof.

Embodiments described in the present disclosure may be practiced withvarious computer system configurations including hand-held devices,microprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers and the like. Severalembodiments described in the present disclosure can also be practiced indistributed computing environments where tasks are performed by remoteprocessing devices that are linked through a wire-based or wirelessnetwork.

With the above embodiments in mind, it should be understood that anumber of embodiments described in the present disclosure can employvarious computer-implemented operations involving data stored incomputer systems. These operations are those requiring physicalmanipulation of physical quantities. Any of the operations describedherein that form part of various embodiments described in the presentdisclosure are useful machine operations. Several embodiments describedin the present disclosure also relate to a device or an apparatus forperforming these operations. The apparatus can be specially constructedfor a purpose, or the apparatus can be a computer selectively activatedor configured by a computer program stored in the computer. Inparticular, various machines can be used with computer programs writtenin accordance with the teachings herein, or it may be more convenient toconstruct a more specialized apparatus to perform the requiredoperations.

Various embodiments described in the present disclosure can also beembodied as computer-readable code on a non-transitory computer-readablemedium. The computer-readable medium is any data storage device that canstore data, which can thereafter be read by a computer system. Examplesof the computer-readable medium include hard drives, network attachedstorage (NAS), ROM, RAM, compact disc-ROMs (CD-ROMs), CD-recordables(CD-Rs), CD-rewritables (RWs), magnetic tapes and other optical andnon-optical data storage devices. The computer-readable medium caninclude computer-readable tangible medium distributed over anetwork-coupled computer system so that the computer-readable code isstored and executed in a distributed fashion.

Although the method operations were described in a specific order, itshould be understood that other housekeeping operations may be performedin between operations, or operations may be performed in an order otherthan that shown, or operations may be adjusted so that they occur atslightly different times, or may be distributed in a system which allowsthe occurrence of the processing operations at various intervalsassociated with the processing.

Although the foregoing embodiments have been described in some detailfor purposes of clarity of understanding, it will be apparent thatcertain changes and modifications can be practiced within the scope ofthe appended claims. Accordingly, the present embodiments are to beconsidered as illustrative and not restrictive, and the variousembodiments described in the present disclosure are not to be limited tothe details given herein, but may be modified within the scope andequivalents of the appended claims.

What is claimed is:
 1. A method for generating a notification on amobile device, comprising: establishing a wireless connection to anactivity monitoring device; receiving activity data from the activitymonitoring device via the wireless connection; processing the activitydata to determine an activity metric for a user of the activitymonitoring device; comparing the activity metric against a predefinedthreshold, the predefined threshold being mapped to a notificationmessage; in response to determining that the activity metric reaches orexceeds the predefined threshold, scheduling the notification messagefor display on the mobile device at a specified date and time; whereinthe method is executed by at least one processor.
 2. The method of claim1, wherein the notification message defines one or more of an alert, abanner, a badge on an icon associated to the application, a sound, or atactile alert.
 3. The method of claim 1, wherein establishing thewireless connection defines communication between a background executedapplication on the mobile device and the activity monitoring device. 4.The method of claim 1, wherein the notification message is displayed onthe mobile device at the specified date and time.
 5. The method of claim1, wherein the activity metric defines one or more of a number of stepstaken, a number of floors climbed, a number of calories burned, anamount of energy expended, a distance traveled, a number of minutesslept, a number of minutes performing an activity, or a number of activeminutes.
 6. The method of claim 1, wherein the predefined thresholddefines a quantified achievement amount of an activity goal set for theuser; and wherein the notification message identifies the quantifiedachievement amount of the activity goal.
 7. The method of claim 6,wherein the quantified achievement amount of the activity goal is lessthan 100%, 100%, or greater than 100% of the activity goal.
 8. Themethod of claim 1, further comprising, when the specified date and timeis reached, processing activity data from the activity monitoring deviceto identify a current state of activity of the user; and presenting ordelaying presentation of the notification message, based on theidentified current state of activity of the user.
 9. The method of claim8, wherein processing activity data to identify the current state ofactivity of the user includes processing location data to identify aspeed or a location of the user; and wherein presenting or delayingpresentation of the notification message is based on the identifiedspeed or location of the user.
 10. A server-executed method forpresenting a notification on a mobile device, comprising: establishingcommunication with the mobile device; receiving activity data from themobile device, the activity data being processed by the mobile devicefrom logged data received from an activity monitoring device; processingthe activity data to determine an activity metric for a user of theactivity monitoring device; comparing the activity metric against apredefined threshold, the predefined threshold being mapped to anotification message; in response to determining that the activitymetric reaches or exceeds the predefined threshold, sending thenotification message to a notification service, the notification serviceconfigured to transmit the notification message to the mobile device forrendering on the mobile device, wherein rendering the notificationmessage includes scheduling the notification message for a time window;wherein the method is executed by at least one processor.
 11. The methodof claim 10, wherein the notification message defines one or more of analert, a banner, a badge on an icon associated to the application, or asound.
 12. The method of claim 10, wherein establishing communicationwith the mobile device includes establishing communication with abackground executed application on the mobile device.
 13. The method ofclaim 10, wherein rendering the notification message on the mobiledevice includes triggering a notification handler.
 14. The method ofclaim 10, wherein rendering the notification message occurs during thetime window.
 15. The method of claim 10, wherein the activity metricdefines one or more of a number of steps taken, a number of floorsclimbed, an amount of energy expended, a number of calories burned, adistance traveled, or a number of active minutes.
 16. The method ofclaim 10, wherein the predefined threshold defines a quantifiedachievement amount of an activity goal set for the user; and wherein thenotification message identifies the quantified achievement amount of theactivity goal.
 17. The method of claim 16, wherein the quantifiedachievement amount of the activity goal is less than about 100%, about100%, or greater than about 100% of the activity goal.
 18. The method ofclaim 10, further comprising, when the time window is reached,processing activity data from the activity monitoring device to identifya current state of activity of the user; and presenting or delayingpresentation of the notification message, based on the identifiedcurrent state of activity of the user.
 19. The method of claim 18,wherein processing activity data to identify the current state ofactivity of the user includes processing location data to identify aspeed or a location of the user; and wherein presenting or delayingpresentation of the notification message is based on the identifiedspeed or location of the user.
 20. A method for presenting anotification on a user device, comprising: defining an activity goal;determining a series of notification thresholds, each notificationthreshold defining a quantified level of achievement of an activitygoal, each notification threshold being mapped to a correspondingnotification message; receiving activity data measured by an activitymonitoring device; processing the activity data to determine an activitymetric; when the activity metric reaches one of the notificationthresholds in the series of notification thresholds, triggeringpresentation of the corresponding notification message on a user device,wherein triggering presentation of the corresponding notificationmessage includes scheduling the corresponding notification message for aspecified date and time; wherein the method is executed by at least oneprocessor.
 21. The method of claim 20, wherein triggering presentationof the corresponding notification message on the user device includesactivating a push notification service to transmit the notificationmessage to the user device for rendering on the user device.
 22. Themethod of claim 20, wherein triggering presentation of the correspondingnotification message on the user device includes triggering a localnotification presenter to display the corresponding notification messageon the user device.
 23. The method of claim 20, wherein eachnotification message identifies the quantified level of achievementdefined by the notification threshold to which the notification messageis mapped.
 24. The method of claim 20, wherein the notification messagedefines one or more of an alert, a banner, a badge on an icon associatedto the application, or a sound.
 25. The method of claim 20, furthercomprising, rendering the notification message on the user device at thespecified date and time.
 26. The method of claim 20, wherein theactivity metric defines one or more of a number of steps taken, a numberof floors climbed, an amount of energy expended, a number of caloriesburned, a distance traveled, or a number of active minutes.
 27. Themethod of claim 20, further comprising, when the specified date and timeis reached, processing activity data from the activity monitoring deviceto identify a current state of activity of the user; and presenting ordelaying presentation of the notification message, based on theidentified current state of activity of the user.
 28. A method fortriggering a notification to a user of an activity monitoring device,comprising: receiving activity data from one or more sensors of anactivity monitoring device; processing the activity data to determine anactivity metric for a user of the activity monitoring device; comparingthe activity metric against a predefined threshold, the predefinedthreshold being mapped to a notification message; in response todetermining that the activity metric reaches or exceeds the predefinedthreshold, establishing communication with a user device, and triggeringdisplay of the notification message on the user device, whereintriggering display of the notification message includes scheduling thenotification message for display during a time window; wherein themethod is executed by at least one processor.
 29. The method of claim28, wherein the notification message is generated in response to thedetermining that the activity metric reaches or exceeds the predefinedthreshold; and wherein triggering display of the notification message onthe user device includes sending the notification message to the userdevice.
 30. The method of claim 28, further comprising, when the timewindow is reached, processing activity data from the one or more sensorsof the activity monitoring device to identify a current state ofactivity of the user; and presenting or delaying presentation of thenotification message, based on the identified current state of activityof the user.